\hypertarget{ws2811_8c}{}\section{ws2811.\+c File Reference}
\label{ws2811_8c}\index{ws2811.\+c@{ws2811.\+c}}
{\ttfamily \#include $<$math.\+h$>$}\\*
{\ttfamily \#include \char`\"{}ws2811.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}stm32f4xx\+\_\+conf.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ch.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}hal.\+h\char`\"{}}\\*
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{ws2811_8c_a6d7e2b488d95500b5c5127945b2b78a0}{T\+I\+M\+\_\+\+P\+E\+R\+I\+O\+D}~(((168000000 / 2 / \hyperlink{conf__general_8h_a36f085cf73db8d6538b36c1e5c62e186}{W\+S2811\+\_\+\+C\+L\+K\+\_\+\+H\+Z}) -\/ 1))
\item 
\#define \hyperlink{ws2811_8c_aa7de76154246e65e2c850ecf351d104d}{L\+E\+D\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N}~(\hyperlink{conf__general_8h_a603b0328c04f0a8e93f19a141bee3bf4}{W\+S2811\+\_\+\+L\+E\+D\+\_\+\+N\+U\+M} + 1)
\item 
\#define \hyperlink{ws2811_8c_a6d2a5933155be0dd4534706425ae9d94}{B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+P\+A\+D}~50
\item 
\#define \hyperlink{ws2811_8c_af156fb85dd4687667bbb6b51dc4d6c39}{B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N}~(24 $\ast$ \hyperlink{ws2811_8c_aa7de76154246e65e2c850ecf351d104d}{L\+E\+D\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N} + \hyperlink{ws2811_8c_a6d2a5933155be0dd4534706425ae9d94}{B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+P\+A\+D})
\item 
\#define \hyperlink{ws2811_8c_a3fcf70b6e1826b0fe3f5e799515945e0}{W\+S2811\+\_\+\+Z\+E\+R\+O}~(\hyperlink{ws2811_8c_a6d7e2b488d95500b5c5127945b2b78a0}{T\+I\+M\+\_\+\+P\+E\+R\+I\+O\+D} $\ast$ 0.\+2)
\item 
\#define \hyperlink{ws2811_8c_a3f2bd7fec433722d1885154e71dca9b9}{W\+S2811\+\_\+\+O\+N\+E}~(\hyperlink{ws2811_8c_a6d7e2b488d95500b5c5127945b2b78a0}{T\+I\+M\+\_\+\+P\+E\+R\+I\+O\+D} $\ast$ 0.\+8)
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{ws2811_8c_aa764abb440f1d5551cce16147a42f1bf}{ws2811\+\_\+init} (void)
\item 
void \hyperlink{ws2811_8c_a1071707c38080713101dc9c216dc78ae}{ws2811\+\_\+set\+\_\+led\+\_\+color} (int led, uint32\+\_\+t color)
\item 
uint32\+\_\+t \hyperlink{ws2811_8c_a7c4a5d2e94b4276d2cb30c8816bb2d98}{ws2811\+\_\+get\+\_\+led\+\_\+color} (int led)
\item 
void \hyperlink{ws2811_8c_a0cf9f7b146d8d61fb2e44653abcf4d1e}{ws2811\+\_\+all\+\_\+off} (void)
\item 
void \hyperlink{ws2811_8c_a26fefc859537f34dba0541d2beebacac}{ws2811\+\_\+set\+\_\+all} (uint32\+\_\+t color)
\end{DoxyCompactItemize}


\subsection{Macro Definition Documentation}
\hypertarget{ws2811_8c_af156fb85dd4687667bbb6b51dc4d6c39}{}\index{ws2811.\+c@{ws2811.\+c}!B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N@{B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N}}
\index{B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N@{B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N}!ws2811.\+c@{ws2811.\+c}}
\subsubsection[{B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N}]{\setlength{\rightskip}{0pt plus 5cm}\#define B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N~(24 $\ast$ {\bf L\+E\+D\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N} + {\bf B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+P\+A\+D})}\label{ws2811_8c_af156fb85dd4687667bbb6b51dc4d6c39}
\hypertarget{ws2811_8c_a6d2a5933155be0dd4534706425ae9d94}{}\index{ws2811.\+c@{ws2811.\+c}!B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+P\+A\+D@{B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+P\+A\+D}}
\index{B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+P\+A\+D@{B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+P\+A\+D}!ws2811.\+c@{ws2811.\+c}}
\subsubsection[{B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+P\+A\+D}]{\setlength{\rightskip}{0pt plus 5cm}\#define B\+I\+T\+B\+U\+F\+F\+E\+R\+\_\+\+P\+A\+D~50}\label{ws2811_8c_a6d2a5933155be0dd4534706425ae9d94}
\hypertarget{ws2811_8c_aa7de76154246e65e2c850ecf351d104d}{}\index{ws2811.\+c@{ws2811.\+c}!L\+E\+D\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N@{L\+E\+D\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N}}
\index{L\+E\+D\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N@{L\+E\+D\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N}!ws2811.\+c@{ws2811.\+c}}
\subsubsection[{L\+E\+D\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N}]{\setlength{\rightskip}{0pt plus 5cm}\#define L\+E\+D\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+L\+E\+N~({\bf W\+S2811\+\_\+\+L\+E\+D\+\_\+\+N\+U\+M} + 1)}\label{ws2811_8c_aa7de76154246e65e2c850ecf351d104d}
\hypertarget{ws2811_8c_a6d7e2b488d95500b5c5127945b2b78a0}{}\index{ws2811.\+c@{ws2811.\+c}!T\+I\+M\+\_\+\+P\+E\+R\+I\+O\+D@{T\+I\+M\+\_\+\+P\+E\+R\+I\+O\+D}}
\index{T\+I\+M\+\_\+\+P\+E\+R\+I\+O\+D@{T\+I\+M\+\_\+\+P\+E\+R\+I\+O\+D}!ws2811.\+c@{ws2811.\+c}}
\subsubsection[{T\+I\+M\+\_\+\+P\+E\+R\+I\+O\+D}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\+I\+M\+\_\+\+P\+E\+R\+I\+O\+D~(((168000000 / 2 / {\bf W\+S2811\+\_\+\+C\+L\+K\+\_\+\+H\+Z}) -\/ 1))}\label{ws2811_8c_a6d7e2b488d95500b5c5127945b2b78a0}
\hypertarget{ws2811_8c_a3f2bd7fec433722d1885154e71dca9b9}{}\index{ws2811.\+c@{ws2811.\+c}!W\+S2811\+\_\+\+O\+N\+E@{W\+S2811\+\_\+\+O\+N\+E}}
\index{W\+S2811\+\_\+\+O\+N\+E@{W\+S2811\+\_\+\+O\+N\+E}!ws2811.\+c@{ws2811.\+c}}
\subsubsection[{W\+S2811\+\_\+\+O\+N\+E}]{\setlength{\rightskip}{0pt plus 5cm}\#define W\+S2811\+\_\+\+O\+N\+E~({\bf T\+I\+M\+\_\+\+P\+E\+R\+I\+O\+D} $\ast$ 0.\+8)}\label{ws2811_8c_a3f2bd7fec433722d1885154e71dca9b9}
\hypertarget{ws2811_8c_a3fcf70b6e1826b0fe3f5e799515945e0}{}\index{ws2811.\+c@{ws2811.\+c}!W\+S2811\+\_\+\+Z\+E\+R\+O@{W\+S2811\+\_\+\+Z\+E\+R\+O}}
\index{W\+S2811\+\_\+\+Z\+E\+R\+O@{W\+S2811\+\_\+\+Z\+E\+R\+O}!ws2811.\+c@{ws2811.\+c}}
\subsubsection[{W\+S2811\+\_\+\+Z\+E\+R\+O}]{\setlength{\rightskip}{0pt plus 5cm}\#define W\+S2811\+\_\+\+Z\+E\+R\+O~({\bf T\+I\+M\+\_\+\+P\+E\+R\+I\+O\+D} $\ast$ 0.\+2)}\label{ws2811_8c_a3fcf70b6e1826b0fe3f5e799515945e0}


\subsection{Function Documentation}
\hypertarget{ws2811_8c_a0cf9f7b146d8d61fb2e44653abcf4d1e}{}\index{ws2811.\+c@{ws2811.\+c}!ws2811\+\_\+all\+\_\+off@{ws2811\+\_\+all\+\_\+off}}
\index{ws2811\+\_\+all\+\_\+off@{ws2811\+\_\+all\+\_\+off}!ws2811.\+c@{ws2811.\+c}}
\subsubsection[{ws2811\+\_\+all\+\_\+off(void)}]{\setlength{\rightskip}{0pt plus 5cm}void ws2811\+\_\+all\+\_\+off (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{ws2811_8c_a0cf9f7b146d8d61fb2e44653abcf4d1e}
\hypertarget{ws2811_8c_a7c4a5d2e94b4276d2cb30c8816bb2d98}{}\index{ws2811.\+c@{ws2811.\+c}!ws2811\+\_\+get\+\_\+led\+\_\+color@{ws2811\+\_\+get\+\_\+led\+\_\+color}}
\index{ws2811\+\_\+get\+\_\+led\+\_\+color@{ws2811\+\_\+get\+\_\+led\+\_\+color}!ws2811.\+c@{ws2811.\+c}}
\subsubsection[{ws2811\+\_\+get\+\_\+led\+\_\+color(int led)}]{\setlength{\rightskip}{0pt plus 5cm}uint32\+\_\+t ws2811\+\_\+get\+\_\+led\+\_\+color (
\begin{DoxyParamCaption}
\item[{int}]{led}
\end{DoxyParamCaption}
)}\label{ws2811_8c_a7c4a5d2e94b4276d2cb30c8816bb2d98}
\hypertarget{ws2811_8c_aa764abb440f1d5551cce16147a42f1bf}{}\index{ws2811.\+c@{ws2811.\+c}!ws2811\+\_\+init@{ws2811\+\_\+init}}
\index{ws2811\+\_\+init@{ws2811\+\_\+init}!ws2811.\+c@{ws2811.\+c}}
\subsubsection[{ws2811\+\_\+init(void)}]{\setlength{\rightskip}{0pt plus 5cm}void ws2811\+\_\+init (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{ws2811_8c_aa764abb440f1d5551cce16147a42f1bf}
\hypertarget{ws2811_8c_a26fefc859537f34dba0541d2beebacac}{}\index{ws2811.\+c@{ws2811.\+c}!ws2811\+\_\+set\+\_\+all@{ws2811\+\_\+set\+\_\+all}}
\index{ws2811\+\_\+set\+\_\+all@{ws2811\+\_\+set\+\_\+all}!ws2811.\+c@{ws2811.\+c}}
\subsubsection[{ws2811\+\_\+set\+\_\+all(uint32\+\_\+t color)}]{\setlength{\rightskip}{0pt plus 5cm}void ws2811\+\_\+set\+\_\+all (
\begin{DoxyParamCaption}
\item[{uint32\+\_\+t}]{color}
\end{DoxyParamCaption}
)}\label{ws2811_8c_a26fefc859537f34dba0541d2beebacac}
\hypertarget{ws2811_8c_a1071707c38080713101dc9c216dc78ae}{}\index{ws2811.\+c@{ws2811.\+c}!ws2811\+\_\+set\+\_\+led\+\_\+color@{ws2811\+\_\+set\+\_\+led\+\_\+color}}
\index{ws2811\+\_\+set\+\_\+led\+\_\+color@{ws2811\+\_\+set\+\_\+led\+\_\+color}!ws2811.\+c@{ws2811.\+c}}
\subsubsection[{ws2811\+\_\+set\+\_\+led\+\_\+color(int led, uint32\+\_\+t color)}]{\setlength{\rightskip}{0pt plus 5cm}void ws2811\+\_\+set\+\_\+led\+\_\+color (
\begin{DoxyParamCaption}
\item[{int}]{led, }
\item[{uint32\+\_\+t}]{color}
\end{DoxyParamCaption}
)}\label{ws2811_8c_a1071707c38080713101dc9c216dc78ae}
